package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.system.domain.TrainingStudyRecord;
import com.ruoyi.system.domain.TrainingStudyRecordCount;
import org.apache.ibatis.annotations.Param;

/**
 * 培训学习记录Mapper接口
 *
 * @author dp
 * @date 2024-01-11
 */
public interface TrainingStudyRecordMapper {
    /**
     * 查询培训学习记录
     *
     * @param studyRecordId 培训学习记录主键
     * @return 培训学习记录
     */
    public TrainingStudyRecord selectTrainingStudyRecordByStudyRecordId(Long studyRecordId);

    /**
     * 查询培训学习记录列表
     *
     * @param trainingStudyRecord 培训学习记录
     * @return 培训学习记录集合
     */
    public List<TrainingStudyRecord> selectTrainingStudyRecordList(TrainingStudyRecord trainingStudyRecord);

    /**
     * 查询培训学习记录合计列表
     *
     * @param submitBegin
     * @param submitEnd
     * @param baseId
     * @param notesStatus
     * @param cadetId
     * @param cadetName
     * @return
     */
    public List<TrainingStudyRecordCount> selectTrainingStudyRecordCount(
            @Param("submitBegin") String submitBegin,
            @Param("submitEnd") String submitEnd,
            @Param("baseId") String baseId,
            @Param("notesStatus") String notesStatus,
            @Param("cadetId") Long cadetId,
            @Param("cadetName") String cadetName);

    public List<TrainingStudyRecord> getRecordList(@Param("submitBegin") String submitBegin,
                                                   @Param("submitEnd") String submitEnd,
                                                   @Param("baseId") String baseId,
                                                   @Param("cadetId") String cadetId,
                                                   @Param("notesStatus") String notesStatus);

    /**
     * 新增培训学习记录
     *
     * @param trainingStudyRecord 培训学习记录
     * @return 结果
     */
    public int insertTrainingStudyRecord(TrainingStudyRecord trainingStudyRecord);

    /**
     * 修改培训学习记录
     *
     * @param trainingStudyRecord 培训学习记录
     * @return 结果
     */
    public int updateTrainingStudyRecord(TrainingStudyRecord trainingStudyRecord);

    /**
     * 删除培训学习记录
     *
     * @param studyRecordId 培训学习记录主键
     * @return 结果
     */
    public int deleteTrainingStudyRecordByStudyRecordId(Long studyRecordId);

    /**
     * 批量删除培训学习记录
     *
     * @param studyRecordIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTrainingStudyRecordByStudyRecordIds(Long[] studyRecordIds);
}
